package br.com.danilloguimaraes.serializacao.binaria;
import static org.junit.Assert.*;
import br.com.danilloguimaraes.serializacao.Sedes;
import br.com.danilloguimaraes.serializacao.SedesTeste;
import br.com.danilloguimaraes.serializacao.entidades.Veiculo;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 *
 * @author danillo
 */
public class SedesBinarioTeste extends SedesTeste{
    private static Sedes sedes;
    
    @BeforeClass
    public static void setUp(){
        sedes = new SedesBinario();
    }
    
    @Test
    public void testWriteAndLoad() throws FileNotFoundException, IOException, ClassNotFoundException{
        String path = createPath("carro.dat");
        File file = new File(path);
        if(file.exists()){
            file.delete();
        }
        assertFalse("File must not exist", file.exists());
        Veiculo veiculo = new Veiculo("Carro", "Camaleao");
        sedes.write(veiculo, path);
        assertTrue("File must exist", file.exists());
        veiculo = (Veiculo) sedes.load(path);
        assertNotNull("Veiculo is not null", veiculo);
        assertEquals("O nome do veículo é 'Carro'", "Carro", veiculo.getNome());
        assertEquals("A cor do veículo é 'Camaleao'", "Camaleao", veiculo.getCor());
    }
}
